package hyperNexusModel

import (
	"time"

	"github.com/wzh200x/hyperNexus/hyperNexusType"
)

type CDKey struct {
	BaseModel
	GroupId     int32     `gorm:"column:groupId;comment:分组id; default:0;" json:"groupId"`
	Code        string    `gorm:"column:code;comment:cdkey; default:'';index;size:255" json:"code"`
	LimitTime   time.Time `gorm:"column:limitTime;comment:限制时间;precision:0" json:"limitTime"`
	CanUseCount int32     `gorm:"column:canUseCount;comment:可使用次数; default:0;" json:"canUseCount"`
	UsedCount   int32     `gorm:"column:usedCount;comment:已使用次数; default:0;" json:"usedCount"`
}

type CDKeyGroup struct {
	BaseModel
	Name   string `gorm:"column:name;comment:分组名; default:'';" json:"name"`
	Extra  string `gorm:"column:extra;comment:额外信息;type:text" json:"extra"`
	Desc   string `gorm:"column:desc;comment:描述; default:'';" json:"desc"`
	Status uint8  `gorm:"column:status;comment:状态; default:0;" json:"status"`
}

type CDKeyUse struct {
	BaseModel
	AvatarId           int32                      `gorm:"column:avatarId;comment:角色id; default:0;" json:"avatarId"`
	HyperNexusAvatarId int64                      `gorm:"column:hyperNexusAvatarId;comment:HyperNexus角色id; default:0; uniqueIndex" json:"hyperNexusAvatarId"`
	Codes              hyperNexusType.StringArray `gorm:"column:codes;comment:cdkey;type:text" json:"codes"`
}
